
#include <Arduino.h>
#include "TFT_eSPI.h"
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;

TFT_eSPI tft;
TFT_eSprite sprite = TFT_eSprite(&tft);

void st7789_display_test()
{
  tft.init();
  tft.fillScreen(TFT_BLACK);
}
void setup() {
      Serial.begin(115200);
  SerialBT.begin("ESP32S3");
  Serial.println("The device started in Bluetooth mode, please connect to it.");
  st7789_display_test();
}

void loop() {
      if (SerialBT.available()) {
        tft.fillScreen(TFT_BLACK);
        tft.setCursor(0, 4, 4);
        String str = "";
        while (SerialBT.available()) {
            char c = SerialBT.read();
            str += c;
        }
        tft.setTextColor(TFT_RED);
        tft.print(str);
    }

//     static int cursor_col = 0; // 光标的列数
//   if (SerialBT.available()) {
//     tft.setCursor(cursor_col * 6, 0); // 设置光标位置
//     tft.setTextColor(TFT_RED);
//     tft.fillRect(cursor_col * 6, 0, tft.width() - cursor_col * 6, 8, TFT_BLACK); // 清空当前行的内容
//     String str = "";
//     while (SerialBT.available()) {
//       char c = SerialBT.read();
//       str += c;
//     }
//     tft.print(str);
//     cursor_col += str.length(); // 增加光标的列数
//     if (cursor_col >= tft.width() / 6) {
//       cursor_col = 0; // 如果列数超过了屏幕的列数，则重置为0
//     }
//   }


// if (SerialBT.available()) {
//     sprite.setTextColor(TFT_RED);
//     sprite.fillRect(0, 0, sprite.width(), 8, TFT_BLACK); // 清空虚拟画布上的文本内容
//     String str = "";
//     while (SerialBT.available()) {
//       char c = SerialBT.read();
//       str += c;
//     }
//     sprite.drawString(str, 0, 0);
//     sprite.pushSprite(0, 0); // 将整个虚拟画布绘制到屏幕上
//   }
}

